package com.study.reflect.junit;

import java.io.FileReader;
import java.io.InputStream;
import java.io.Reader;
import java.util.ResourceBundle;

import org.junit.Test;

/**
* @Name: LoadResourcesTest
* @Description: 加载资源配置文件测试
* @Author: 李超	lc_jack@foxmail.com
* @CreateDate: 2017-1-18 上午10:10:28 
* @Version: V1.0
 */
public class LoadResourcesTest {
	
	/**
	* @Name: loadResource
	* @Description: 加载资源配置文件的方式
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-1-18 上午10:11:06
	* @Parameters: 
	* @Return: void
	 */
	@Test
	public void loadResource() throws Exception {
		//方式一：文件系统方式——通过创建文件流对象：可以加载任意路径下的配置文件
//		Reader reader = new FileReader("class.txt") ;
//		Reader reader = new FileReader("config/class.txt") ;
		Reader reader = new FileReader("src/com/study/reflect/junit/class.txt") ;
		char[] cbuf = new char[1024] ;
		int len = 0 ;
		while((len = reader.read(cbuf)) != -1) {
			System.out.println(new String(cbuf, 0, len));
		}
		reader.close() ;
		//方式二：类加载方式——通过类加载器提供的方法：只能加载类路径下（即src目录下）的资源文件
//		InputStream in = LoadResourcesTest.class.getClassLoader().getResourceAsStream("com/study/reflect/junit/class.txt") ;
//		InputStream in = LoadResourcesTest.class.getClassLoader().getResourceAsStream("com/study/reflect/class.txt") ;
//		InputStream in = LoadResourcesTest.class.getResourceAsStream("class.txt") ;
		InputStream in = LoadResourcesTest.class.getResourceAsStream("config/class.txt") ;
		byte[] buf = new byte[1024] ;
		int length = 0 ;
		while((length = in.read(buf)) != -1) {
			System.out.println(new String(buf, 0, length));
		}
		in.close() ;
		//方式三：使用ResourceBundle类，只能读取属性配置文件，且只能加载类路径（即src目录下）目录下的文件
		ResourceBundle bundle = ResourceBundle.getBundle("com/study/reflect/db") ;
		String DBDRIVER = bundle.getString("DBDRIVER") ;
		System.out.println(DBDRIVER);
	}
	
}


















